home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 15 / CU Amiga Magazine's Super CD-ROM 15 (1997)(EMAP Images)(GB)[!][issue 1997-10].iso / CUCD / Graphics / Ghostscript / source / dwdll.h < prev    next >
C/C++ Source or Header  |  1996-06-08  |  3KB  |  119 lines

  1. /* Copyright (C) 1996, Russell Lang.  All rights reserved.
  2.   
  3.   This file is part of Aladdin Ghostscript.
  4.   
  5.   Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND.  No author
  6.   or distributor accepts any responsibility for the consequences of using it,
  7.   or for whether it serves any particular purpose or works at all, unless he
  8.   or she says so in writing.  Refer to the Aladdin Ghostscript Free Public
  9.   License (the "License") for full details.
  10.   
  11.   Every copy of Aladdin Ghostscript must include a copy of the License,
  12.   normally in a plain ASCII text file named PUBLIC.  The License grants you
  13.   the right to copy, modify and redistribute Aladdin Ghostscript, but only
  14.   under certain conditions described in the License.  Among other things, the
  15.   License requires that the copyright notice and this notice be preserved on
  16.   all copies.
  17. */
  18.  
  19.  
  20. // dwdll.h
  21.  
  22. // gsdll_class for MS-Windows
  23.  
  24. #ifndef _GSDLL_H
  25. extern "C" {
  26. #include "gsdll.h"
  27. }
  28. #endif
  29.  
  30. #ifndef _GSDLL_CLASS_H
  31. #define _GSDLL_CLASS_H
  32.  
  33.  
  34. class gsdll_class {
  35.     // instance of caller
  36.     HINSTANCE    hinstance;
  37.     // handle to DLL.  Non-zero of loaded.
  38.     HINSTANCE    hmodule;
  39.     // handle to parent window.  Can be NULL.
  40.     HWND        hwnd;
  41.     // text description of last error
  42.     char        last_error[128];
  43.     // true if init and execute_begin have been called
  44.     BOOL        initialized;
  45.     // return code from last c_execute_end
  46.     int        execute_code;
  47.  
  48.     // pointer to callback from DLL
  49.     GSDLL_CALLBACK callback;
  50.  
  51.     // pointers to DLL functions
  52.     PFN_gsdll_revision    c_revision;
  53.     PFN_gsdll_init        c_init;
  54.     PFN_gsdll_execute_begin    c_execute_begin;
  55.     PFN_gsdll_execute_cont    c_execute_cont;
  56.     PFN_gsdll_execute_end    c_execute_end;
  57.     PFN_gsdll_exit        c_exit;
  58.     PFN_gsdll_lock_device    c_lock_device;
  59.     PFN_gsdll_copy_dib    c_copy_dib;
  60.     PFN_gsdll_copy_palette    c_copy_palette;
  61.     PFN_gsdll_draw        c_draw;
  62.  
  63.     // pointer to os2dll or mswindll device
  64.     // this needs to be extended to support multiple devices
  65.     // also need to have one window per device
  66.     char FAR *device;
  67.  
  68.  
  69. public:
  70.     // Load DLL
  71.     // Arguments:
  72.     //   instance of calling EXE
  73.     //   name of DLL, may include path
  74.     //   expected version number of DLL
  75.     // Returns:
  76.     //   zero on success
  77.     //   non-zero on error.  Error message available from get_last_error()
  78.     // do nothing if DLL already loaded
  79.     int load(const HINSTANCE hinstance, const char *name, const long version);
  80.  
  81.     // Get revision number of DLL
  82.     int revision(char FAR * FAR *, char FAR * FAR *, long FAR *, long FAR *);
  83.  
  84.     // Unload DLL
  85.     int unload(void);
  86.     
  87.     // Initialise DLL
  88.     // Arguments:
  89.     //   pointer to C callback function
  90.     //   window handle of parent
  91.     //   argc  (normal C command line)
  92.     //   argv  (normal C command line)
  93.     int init(GSDLL_CALLBACK callback, HWND hwnd, int argc, char FAR * FAR *argv);
  94.  
  95.     // Restart DLL
  96.     int restart(int argc, char FAR * FAR *argv);
  97.  
  98.     // Execute string
  99.     int execute(const char FAR *, int len);
  100.  
  101.     // Get last error string
  102.     int get_last_error(char *str, int len);
  103.  
  104.     // lock device
  105.     int gsdll_class::lock_device(const char FAR *device, int lock);
  106.  
  107.     // draw bitmap
  108.     int gsdll_class::draw(const char FAR *device, HDC hdc, int dx, int dy, int wx, int wy, int sx, int sy);
  109.  
  110.     // copy bitmap
  111.       HGLOBAL gsdll_class::copy_dib(const char FAR *device);
  112.  
  113.     // copy palette
  114.       HPALETTE gsdll_class::copy_palette(const char FAR *device);
  115. };
  116. #endif // _GSDLL_CLASS_H
  117.  
  118.  
  119.